<?php
/**
 * Created by YuanXiShop.
 * User: YuanXi
 * Date: 2021/6/3 0003
 * Time: 1:26
 */

namespace admin;

use JasonGrimes\Paginator;
use models\BaseDao;
use Slince\Upload\UploadHandlerBuilder;

class Ask extends Admin
{
    function __construct()
    {
        parent::__construct();
        $this->assign('menumark','ask');
    }
    function index()
    {
        $db = new BaseDao();

        $num = $_GET['num'] ?? 1;
        //搜索条件
        $prosql['ORDER'] = ['id'=>'DESC'];
        $where = [];
        if(isset($_GET['state']) && $_GET['state'] != ''){
            $where['ask.state'] = $_GET['state'];
            $state = "&state=".$_GET['state'];
        }
        if(!empty($_GET['name'])){
            $where['product.name[~]'] = $_GET['name'];
            $name = '&name='.$_GET['name'];
        }
        if(!empty($_GET['asktext'])){
            $where['ask.asktext[~]'] = $_GET['asktext'];
            $asktext = '&asktext='.$_GET['asktext'];
        }
        if(!empty($_GET['uname'])){
            $where['ask.uname[~]'] = $_GET['uname'];
            $uname = '&uname='.$_GET['uname'];
        }

        $this->assign('get',$_GET);

        $totalItems = $db->count('ask',$where);//总页面数
        $itemsPerPage = 3;//每页显示多少条数据
        $currentPage = $num;//当前页是第几页
        $urlPattern = '/admin/ask?num=(:num)'.$state.$name.$asktext.$uname;

        $paginator = new Paginator($totalItems, $itemsPerPage, $currentPage, $urlPattern);

        //从第几页开始
        $start = ($currentPage-1) * $itemsPerPage;
        $prosql['LIMIT'] = [$start,$itemsPerPage];

        $prosql = array_merge($prosql,$where);
        $data = $db->select('ask',
            ['[>]product'=>['pid'=>'id']],
            ['ask.id','ask.pid','ask.uid','ask.uip','ask.atime','ask.uname','ask.replytext','ask.replytime','ask.state','ask.asktext','product.name','product.logo'],
            $prosql);

        //将数据分配给模板
        $this->assign('data',$data);
        $this->assign('fpage',$paginator);

        //标题
        $this->assign('title','咨询列表');
        //输出模板
        $this->display('ask/index');
    }
    function reply($id)
    {
        $db = new BaseDao();
        $data = $db->get('ask',
            ['[>]product'=>['pid'=>'id']],
            ['ask.id','ask.pid','ask.uid','ask.uip','ask.atime','ask.uname','ask.replytext','ask.replytime','ask.state','ask.asktext','product.name','product.logo'],
            ['ask.id'=>$id]
        );
        $this->assign($data);
        $this->assign('title','回复咨询');
        $this->display('ask/reply');
    }
    function doreply()
    {
        $id = $_POST['id'];

        unset($_POST['id']);

        $db = new BaseDao();
        if(!empty($_POST['replytext'])){
            $_POST['atime'] =  time();
            $_POST['state'] = 1;
        }else{
            $_POST['state'] = 0;
        }

        if($db->update('ask',$_POST,['id'=>$id])){
            $this->success('/admin/ask','回复成功！');
        }else{
            $this->error('/admin/ask/reply/'.$id,'回复失败！');
        }
    }
    function del($id)
    {
        $db = new BaseDao();
        if($db->delete('ask',['id'=>$id])){
            $this->success('/admin/ask','删除成功！');
        }else{
            $this->error('/admin/ask','删除失败！');
        }
    }
    function alldel()
    {
        $db = new BaseDao();
        $num = 0;
        foreach ($_POST['id'] as $id){
            $num += $db->delete('ask',['id'=>$id]);
        }
        if($num > 0){
            $this->success('/admin/ask',$num.'篇删除成功！');
        }else{
            $this->error('/admin/ask','删除失败！');
        }
    }

}